home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1993 March
/
64er_Magazin_93-03_1993_Markt__Technik_de_Side_B.d64
/
more lines.ascii
< prev
next >
Wrap
Text File
|
2022-10-26
|
8KB
|
3 lines
100 org $1300 ;start = 4864
110 jmp init ;aender editor.
120 jmp line ;wahle # zeilen.
130 jmp karset;mach zeichensatz.
140 init sei
150 lda #$20 ;setze variablen
160 sta $30 ;start nach
170 sta $32 ;$2000.
180 sta $34
190 ldy #$00
200 sty $2f
210 sty $31
220 sty $33
230 sty $fb
240 sty $fd
250 lda #$c0
260 sta $fc
270 sta $fe
280 sta $ff03 ;i/o aus.
290 ldx #$3f ;kopier $c000
300 jsr copyc ;bis $feff.
310 ldy #$05 ;kopier $ff05
320 jsr copyb ;bis $ffff
330 ldx #$01 ;aender kernal
340 l2 lda new1,x ;und
350 sta $c15f,x;basic vectors.
360 sta $c44d,x
370 lda new2,x
380 sta $c169,x
390 sta $c453,x
400 lda new3,x
410 sta $ca37,x
420 lda new4,x
430 sta $cb7a,x
440 sta $cb8b,x
450 sta $cb8e,x
460 sta $cb9b,x
470 lda new5,x
480 sta $0324,x ;einfuhr
490 lda new6,x
500 sta $0326,x ;ausfuhr
510 lda new7,x
520 sta $033a,x ;tasten
530 lda new8,x
540 sta $0302,x ;basic zeilen
550 lda new9,x
560 sta $0308,x ;basic befehlen
570 dex
580 bpl l2
590 lda #$ff
600 sta $c16c
610 sta $c187
620 sta $c456
630 sta $c489
640 sta $c522
650 lda #$20 ;32*8=256
660 sta $ca35 ;link zeilen.
670 lda #$cc ;kopier
680 sta $fb ;window
690 lda #$72 ;routine.
700 ldx #<window
710 ldy #>window
720 jsr copya
730 lda #$d7 ;kopier
740 sta $fb ;char
750 lda #$67 ;routine.
760 ldx #<char
770 ldy #>char
780 jsr copya
790 lda #<rplot ;aender
800 sta char+$62;char
810 lda #>rplot ;routine
820 sta char+$63;so dass
830 lda #<ram ;den neue
840 sta char+$79;ram-kernal
850 lda #>ram ;angesprochen
860 sta char+$7a;wird.
870 lda #$4c
880 sta char+$8c
890 lda #$63
900 sta char+$8d
910 lda #$68
920 sta char+$8e
930 lda #$c5 ;kopier
940 sta $fb ;if
950 lda #$52 ;routine
960 ldx #<if
970 ldy #>if
980 jsr copya
990 lda #$2c
1000 sta if+$2e ;bei neue
1010 lda #<newco2;basic
1020 sta if+$59 ;befehlen
1030 lda #>newco2;muss auch
1040 sta if+$5a ;die if
1050 lda #$4c ;routine
1060 sta if+$5b ;geaendert
1070 lda #$9d ;werden.
1080 sta if+$5c
1090 lda #$52
1100 sta if+$5d
1110 jsr tables ;zeilenaddresse.
1120 lda #$00 ;rom ein
1130 sta $ff00
1140 lda #$06 ;bis $2000
1150 sta $d506 ;bank1=bank0.
1160 ldx #$06 ;hole anzahl
1170 jsr $cdda ;zeilen.
1180 cli
1190 line ldx #$06 ;setze
1200 jsr $cdcc ;schirm
1210 sta window+$14;und
1220 sta window+$33;window
1230 tay ;zu dem
1240 dey ;neue
1250 sty $ed ;anzahl
1260 jsr ram ;zeilen.
1270 jsr $ca24
1280 jmp $a845 ;rom ein.
1290 ram pha ;ram ein.
1300 lda #$30
1310 jmp $a848
1320 in jsr ram ;input-vector
1330 jsr $ef06 ;zeigt jetzt auf
1340 jmp $a845 ;ram-kernal.
1350 out jsr ram ;neue ram
1360 jsr $ef79 ;output-vector.
1370 jmp $a845
1380 kar jsr ram ;tasten-rout
1390 jsr $c5e1 ;nutzt auch
1400 jmp $a845 ;das neue ram.
1410 new1 dat textl ;neue data's
1420 new2 dat texth ;fur den
1430 new3 dat link-1 ;ram-editor.
1440 new4 dat link
1450 new5 dat in
1460 new6 dat out
1470 new7 dat kar
1480 new8 dat newbas
1490 new9 dat newcom
1500 newbas ldx #$ff ;basic zeilen-
1510 stx $3c ;lese vector
1520 jsr $4f93 ;geandert
1530 stx $3d ;so das auch
1540 sty $3e ;direkt eingaben
1550 jsr $0380 ;mit neue
1560 tax ;befehlen erkant
1570 beq newbas;werden.
1580 bcc number
1590 jsr $430a
1600 jsr $0386
1610 jmp newco1;der anderung.
1620 number jmp $4de2
1630 newcom jsr $0380
1640 newco1 jsr newco2
1650 jmp $4af6
1660 newco2 cmp #$8b ;neue if-befehl
1670 beq nif
1680 cmp #$e0 ;neue char-befehl
1690 beq nchar
1700 cmp #$fe ;ein $fe befehl?
1710 beq nwin1
1720 jmp $531a ;alte befehlen.
1730 nwin1 jsr $0380
1740 cmp #$1a ;code $fe+$1a
1750 beq nwin2 ;=window-befehl
1760 jsr $0386
1770 jmp $4b97 ;alte $fe-befehle
1780 nwin2 jsr $0380 ;das neue
1790 jmp window;window-befehl.
1800 nchar jsr $0380 ;das neue
1810 jmp char ;char-befehl.
1820 nif jsr $0380 ;das neue
1830 jmp if ;if-befehl.
1840 rplot jsr ram ;plot-vector
1850 jmp $fff0 ;nutzt auch ram.
1860 copya sta $fc ;setze copy
1870 stx $fd ;addressen.
1880 sty $fe
1890 ldy #$00
1900 copyb ldx #$01 ;1 block
1910 copyc lda ($fb),y;kopier
1920 sta ($fd),y;x blocken.
1930 iny
1940 bne copyc
1950 inc $fc
1960 inc $fe
1970 dex
1980 bne copyc
1990 rts
2000 tables ldx #$00 ;erzeug
2010 txa ;tabellen
2020 tay ;mit den
2030 tab1 pha ;low und high
2040 tya ;addressen
2050 sta texth,x;von dem start
2060 pla ;von bis zu
2070 sta textl,x;256 zeilen.
2080 clc
2090 adc #$28
2100 bcc tab2
2110 iny
2120 tab2 inx
2130 bne tab1
2140 rts
2150 karset sta $fb
2160 cmp #$11;test zeichenlange
2170 bcc kar1
2180 lda #$20;+32 if l>16
2190 dat $2c
2200 kar1 lda #$10;+16 if l<=16
2210 sec
2220 sbc $fb ;anzahl leere
2230 sta $fd ;pixelzeile.
2240 lda $fb ;7-l mod 8 karbyt
2250 and #$07;nicht kopieren.
2260 eor #$07
2270 sta $fc
2280 lsr $fb ;lange/8
2290 lsr $fb
2300 lsr $fb
2310 lda #$00 ;start zeichen
2320 sta source+1;satz im rom.
2330 lda #$d0
2340 sta source+2
2350 kar2 lda #$1f ;vdc datareg 31
2360 sta $d600 ;zum data andern
2370 lda $fc
2380 sta $fe
2390 inc $fe
2400 ldy #$00
2410 kar3 sta $ff03 ;zeichenrom ein.
2420 source lda $d000,y;hole byte.
2430 ldx #$00 ;i/o ein.
2440 stx $ff00
2450 ldx $fb
2460 bne kar4
2470 jsr $cdcf ;setz byte
2480 dec $fe ;byte weglassen?
2490 bmi kar5 ;jump = no.
2500 iny ;byte weglassen.
2510 bne kar5
2520 kar4 jsr $cdcf ;byte x mahl
2530 dex ;kopieren.
2540 bne kar4
2550 dec $fe ;setz extra byte?
2560 bpl kar5 ;no = jump.
2570 jsr $cdcf ;setz extra byte
2580 kar5 iny
2590 cpy #$08 ;alle bytes
2600 bne kar3 ;fertig?
2610 ldy $fd
2620 beq kar6
2630 lda #$00 ;setz y mahl
2640 jsr $cdca ;leer byte.
2650 dey
2660 beq kar6
2670 tya
2680 ldx #$1e
2690 jsr $cdcc
2700 kar6 lda #$08 ;setze pointer
2710 clc ;zu dem
2720 adc source+1;nachsten
2730 sta source+1;zeichen.
2740 lda source+2
2750 adc #$00
2760 sta source+2
2770 cmp #$e0 ;alle zeichen
2780 bne kar2 ;schon fertig?
2790 rts
2800 textl dat $00
2810 texth def textl+256
2820 link def texth+256
2830 window def link+32
2840 char def window+$69
2850 if def char+$8f
ready.